/**
 * @file SList.h
 * @author cuihongxi (108287205@qq.com)
 * @brief 顺序表
 * @version 0.1
 * @date 2022-11-21
 * 
 * @copyright Copyright (c) 2022
 * 
 */

#ifndef __SLIST_H
#define __SLIST_H
#include "uhead.h"

typedef struct 
{
   u32 max;     // 最大存储个数
   u32 num;     // 当前已存储个数
   u32* phead;  // 保存地址
}slist;




/* 函数 */

slist* new_slist(u32 num);
void slist_free(slist* list);
void slist_append(slist* list,void* node);
void* slist_get(slist* list,u32 index);
void slist_assignment(slist* list, u32 index, void* node);  
void* slist_pop(slist* list);                               // 移除末尾的元素
void* slist_popIndex(slist* list, u32 index);
void slist_insert(slist* list, u32 index,void* node);
void slist_print(slist* list);


#define SLIST_GETNODE(list,type,index)      (type)slist_get(list,index)

#endif // !__SLIST_H





















